package com.cloudkinto.dto.order.amazonV2Shipping;

import lombok.Data;

import java.util.List;

/**
 * @author long
 * @Description 运输服务产品的详细信息
 * @Date 2025/2/12 11:08
 */
@Data
public class Rate {

    /**
     * 必填
     * 配送服务提供商提供的 费率（货件产品/服务）的标识符
     */
    private String rateId;

    /**
     * 必填
     * 产品的运营商 ID
     * 由运营商提供
     */
    private String carrierId;

    /**
     * 必填
     * 运营商名称
     */
    private String carrierName;

    /**
     * 必填
     * 运输服务的标识符
     */
    private String serviceId;

    /**
     * 必填
     * 配送服务的名称
     */
    private String serviceName;

    /**
     * 账单上的货重
     */
    private Weight billedWeight;

    /**
     * 必填
     * 总费用
     */
    private Currency totalCharge;

    /**
     * 必填
     * 承诺的取货和配送事件的时间窗口
     */
    private Promise promise;

    /**
     * 必填
     * 装运服务产品支持的文档规范列表
     */
    private List<SupportedDocumentSpecification> supportedDocumentSpecifications;

    /**
     * 可用于运输服务产品的增值服务列表
     */
    private List<AvailableValueAddedServiceGroup> availableValueAddedServiceGroups;

    /**
     * 必填
     * 如果为 true，则表示需要其他输入才能购买此货件服务。
     * 然后，您必须调用 getAdditionalInputs作以返回在向 purchaseShipment作提供其他输入时要使用的 JSON 架构
     */
    private boolean requiresAdditionalInputs;

    /**
     * 费率项目
     */
    private List<RateItem> rateItemList;

    /**
     * 购买的付款类型
     */
    private PaymentType paymentType;

    /**
     * 代表我们为每项 ShippingOffering/费率提供的包含/排除的权益。
     * 好处是卖家通过亚马逊购买配送服务时由 Amazon 提供的服务
     */
    private Benefits benefits;
}
